custom-script.js.
Všechny níže uvedené volby se nastavují přes:
var COMEX, $custom = COMEX.Page.Settings.Custom;
1) Vzhled a layout aplikace
appName (string)

Účel: Název aplikace v titulku/hlavičce.

Default: "COMEX DEV"

Příklad:
$custom.appName = "MyApp DEV";
layout ("v1" | "v2")

Účel: Vizuální styl komponent (kompaktní vs. vzdušnější).

Default: "v2"

Příklad:
$custom.layout = "v2"; // "v1" = standard, "v2" = airy
logoPosition ("left" | "top" | "left + top")

Účel: Umístění loga v menu.

Default: "top"

Příklad:
$custom.logoPosition = "top";
corners ("sharp" | "smooth") a smoothCornersRadius (CSS length)

Účel: Tvar rohů a poloměr zaoblení.

Default: corners = "smooth", smoothCornersRadius = "6px"

Příklad:
$custom.corners = "sharp"; $custom.smoothCornersRadius = "6px";
iconSet (string|null)

Účel: Volba předpřipravené sady ikon.

Default: null

Příklad:
$custom.iconSet = "deepblue";
colorPalette (string[])

Účel: Nabídka barev v colorboxech.

Default: []

Příklad:
$custom.colorPalette = ["#000000", "#E44C00", "#4C4D00", /* ... */ "#FEE5FF"];
2) Navigace a domovská stránka
navigation (boolean)

Účel: Povolení/zakázání navigace na stránce.

Default: true

Příklad:
$custom.navigation = true;
homepage (boolean)

Účel: Zda má uživatel k dispozici „Moji stránku“.

Default: true

Příklad:
$custom.homepage = true;
homepageFinder (boolean), pageFinder (boolean)

Účel: Zobrazení globálního vyhledávání („hledaček“) na „Moji stránce“ a na ostatních stránkách.

Default: homepageFinder – nedef.; pageFinder – true

Příklad:
$custom.homepageFinder = true; $custom.pageFinder = true;
3) Telefonní čísla a časové bloky
phoneNumberSplit (boolean) a phoneNumberPrefix (string)

Účel: Formátování telefonu do bloků + výchozí předvolba pro nature:phone validace.

Default: phoneNumberSplit = true, phoneNumberPrefix = "420"

Příklad:
$custom.phoneNumberSplit = true; $custom.phoneNumberPrefix = "420";
timeSelectorBlock (15 | 30)

Účel: Délka slotu v timepickeru (addon timebox).

Default: 30

Příklad:
$custom.timeSelectorBlock = 30;
4) Messenger
messenger (boolean)

Účel: Zapnutí COMEX Messengeru (řízení refreshů tabulek apod.).

Default: false

Příklad:
$custom.messenger = false;
5) Přednastavené datumové rozsahy
dateRangePresets (objekt)

Účel: Vlastní presety; první sada je defaultní.

Formát výrazů: W+0 (týden), M-1~M+0 (od minulého do aktuálního měsíce), Q (kvartál), Y (rok), -N (zpět), +N (vpřed).

Příklad:
$custom.dateRangePresets = {
customSet1: {
dateRangeThisWeek: "W+0",
dateRangeLast2Weeks: "W-1~W+0",
dateRangeThisMonth: "M+0",
dateRangeLast2Months: "M-1~M+0",
dateRangeThisQuartal: "Q+0",
dateRangeLast2Quartals: "Q-1~Q+0",
dateRangeThisYear: "Y+0",
dateRangeLast12Months: "M-11~M+0",
dateRangeLast2Years: "Y-1~Y+0",
}
};
6) Dialogy
highlightDialogMainButton (boolean)

Účel: Zvýraznění hlavního tlačítka v dialogu.

Default: false

Příklad:
$custom.highlightDialogMainButton = false;
7) Oznámení (Alerts)
Alerts.enabled (boolean) a Alerts.useMessenger (boolean)

Účel: Zapnutí oznamování a zdroj zpráv (lokálně vs. z Messengeru).

Default: enabled = true, useMessenger = false

Příklad:
$custom.Alerts.enabled = true; $custom.Alerts.useMessenger = false;
Alerts.messages (array)

Účel: Lokální předdefinované zprávy.

Struktura položky:
type|[volitelná expirace YYYY-MM-DD hh:mm:ss]|text
8) Support (plovoucí bublina nápovědy)
Support.enabled (boolean)

Účel: Zobrazení/skrýtí widgetu podpory.

Default: false
Support.icon (URL) a Support.contentPage (URL)

Účel: Ikona a HTML obsah, který se načte do bubliny podpory.

Příklad:
$custom.Support.enabled = false; $custom.Support.icon = "/unk/comex/images/support.svg"; $custom.Support.contentPage = "/unk/comex/custom/support.htm";
Support.requestAction (string) a Support.requestPage (URL)

Účel: Jak odeslat požadavek na podporu. Akce má přednost před URL.

Příklad:
$custom.Support.requestAction = "send_action_request"; // název akce v COMEXu $custom.Support.requestPage = "/comex/?id=1234"; // fallback/alternativa
9) Nastavení uživatele (User)
User.disallowPasswordChange (boolean)

Účel: Zakázat změnu hesla v uživatelských nastaveních.

Default: false
User.activeWorkTimeFrom (number) a User.activeWorkTimeTo (number)

Účel: Aktivní pracovní doba (např. pro notifikace/plánování).

Default: 7 a 16

Příklad:
$custom.User.activeWorkTimeFrom = 7; $custom.User.activeWorkTimeTo = 16;
User.hideActiveWorkTimeSettings (boolean)

Účel: Skrýt v UI nastavení pracovní doby.

Default: false
User.loadHomepageByDefault (boolean)

Účel: Pokud není určeno ID stránky, otevřít „Moji stránku“.

Default: false
User.keepCurrentModulePosition (boolean) a User.keepOtherModulesExpanded (boolean)

Účel: Zachovat aktuální modul v menu / nechat ostatní rozbalené.

Default: false, false
User.entitySelectorStatement (SQL string)

Účel: SQL dotaz pro seznam entit/organizací uživatele.

Placeholdery: #userId# (aktuální uživatel)

Příklad:
$custom.User.entitySelectorStatement = "SELECT pdk as 'id', hd_jm as 'label' FROM dbo.org-!- as o WHERE xc_del = 0 AND user=#userId#";
User.entitySelectorLSV (string) a User.entitySelectorListLSV (string)

Účel: Názvy LSV pro aktuální entitu a seznam entit.

Příklad:
$custom.User.entitySelectorLSV = "userEntity"; $custom.User.entitySelectorListLSV = "userEntities";
User.sessionSource ("login" | "cookies")

Účel: Zdroj session id (dočasné nastavení kvůli variantám serveru).

Default: "cookies"

Příklad:
$custom.User.sessionSource = "cookies";
10) Dokumenty (Preview/Form)
Document.Preview.pdfExport (boolean) a Document.Preview.print (boolean)

Účel: Povolit export náhledu do PDF / tisk náhledu.

Default: true

Příklad:
$custom.Document.Preview.pdfExport = true; $custom.Document.Preview.print = true;
Document.Form.version (1 | 2)

Účel: Generace formuláře (1 = původní, 2 = nová).

Default: 2

Příklad:
$custom.Document.Form.version = 2;
11) Tabulky
Table.allowDataCopying (boolean)

Účel: Povolit kopírování dat z tabulek (clipboard).

Default: true

Příklad:
$custom.Table.allowDataCopying = true;
Table.Data.swapToolsAndButtons (boolean)

Účel: „Hack“ pro prohození typů nástrojů button a tool u tabulek.

Poznámka: V komentáři je „default: true“, ve vzoru je nastaveno na false.

Příklad:
$custom.Table.Data.swapToolsAndButtons = false;
Doplňující poznámky pro implementaci

Priorita podpory: Pokud je nastavena Support.requestAction, použije se před Support.requestPage. Akce tedy přebíjí prosté přesměrování na URL.

DateRange výrazy:

W, M, Q, Y = týden/měsíc/kvartál/rok; +0 aktuální, -1 minulý.

Rozsah A~B znamená „od A do B včetně“ (např. M-11~M+0 = posledních 12 měsíců).

Messenger: Nezapínej, pokud aplikace Messenger aktivně nevyužívá (zbytečné overheady).

LSV názvy: Dohlédni, že LSV (např. userEntity, userEntities) jsou skutečně publikované a dostupné v daném COMEXu.

UI konzistence: Pokud použiješ corners="sharp", zvaž sladění s layout="v1" (kompaktnější vzhled), „v2“ působí lépe se smooth rohy.


type ∈ info, info-banner, warning, warning-banner

Příklad:
$custom.Alerts.messages = [ "info|2025-12-31 23:59:59|Systém bude krátce nedostupný.", "warning-banner||Pozor: změna ceníku od 1. 10." ];